1. Field of the Invention
The present invention relates to a memory system having a non-volatile and a volatile memory. More particularly, the present invention relates to a memory system that stores a set of executable codes in a volatile memory and decompresses it into a non-volatile memory for execution.
2. Description of the Related Technology
A data storage device, such as a digital audio tape (DAT) drive, is composed of a drive device mechanism including read/write heads and a device controller for controlling the drive device according to instructions from a connected host computer such as a personal computer (PC). The device controller monitors and controls the operation of the entire drive device by running a device operating program. The device controller thus generally includes a microprocessor for running the program code, a non-volatile memory for persistently storing the program code, a volatile memory for temporarily storing program code and data, and bus lines to allow data communication among the components.
The non-volatile memory of the device controller stores the device operating program and, in addition, a loader program. A flash memory is an important type of non-volatile memory since data stored in a flash memory can be rewritten. Thus, by using a flash memory, revisions to the device operating program may be updated with the device controller.
The volatile memory of the device controller has a buffer to temporarily store data which is to be written to the storage device or to be transferred to the host computer. The volatile memory also has an area for storing the device operating program and data during the execution. In DAT drive controllers, the volatile memory is typically implemented by a dynamic random access memory (DRAM).
When power to a data storage device is turned on, the microprocessor automatically executes the loader program stored in the nonvolatile memory, and copies the device operating program from the nonvolatile memory to the volatile memory. Then the microprocessor runs the device operating program to monitor and control the operation of the drive.
Because of the increasing need for fine control of the drive software, as well as the need for providing greater functionality in operating the drive, device operating programs have continued to grow. Naturally, this increase in program size requires a larger non-volatile memory to store it. It may, however, not be practical to use a larger non-volatile memory because of the increased product cost. Therefore, there is a need to restrict the size of the expensive non-volatile memory which is used for storing programs in a data storage device.